import React, { PureComponent } from 'react'
// 高阶组件的运用-props的增强

// 高阶组件的定义
function HOC(OriginComponent) {
  // 1.定义类组件
  class Hello extends PureComponent {
    constructor() {
      super()
      this.state = {
        userInfo: {
          name: 'lc',
          password: 123456
        }
      }
    }
    render() {
      return (
        <div>
          <OriginComponent {...this.state.userInfo} {...this.props} />
        </div>
      )
    }
  }

  return Hello
}
// 在调用高阶组件时，1.可以使用高阶组件中定义的数据 2.在render函数中使用时也可以通过props传值(传给高阶组件->props ->传给该组件)
const Hello = HOC(function (props) {
  console.log(props);
  return <h2>Hello! {props.name }</h2>
})

export class App extends PureComponent {
  render() {
    return (
      <div>
        <Hello age={12} />
      </div>
    )
  }
}

export default App